package ar.fiuba.tp7552.buildadmin.service.impl;

import java.util.Collection;

import org.springframework.transaction.annotation.Transactional;

import ar.fiuba.tp7552.buildadmin.dao.TipoPropiedadDao;
import ar.fiuba.tp7552.buildadmin.model.BusinessException;
import ar.fiuba.tp7552.buildadmin.model.builds.TipoPropiedad;
import ar.fiuba.tp7552.buildadmin.service.TipoPropiedadService;

@Transactional
public class TipoPropiedadServiceImpl implements TipoPropiedadService {

	private TipoPropiedadDao tipoPropDao;
	
	public TipoPropiedadServiceImpl(TipoPropiedadDao dao) {
		super();
		this.tipoPropDao = dao;
	}

	@Override
	public void createTipoPropiedad(TipoPropiedad tipoProp) throws BusinessException {
		String tipoPropiedadName = tipoProp.getNombre();
		TipoPropiedad other = tipoPropDao.findByTipoPropiedadname(tipoPropiedadName, tipoProp.getEdificio());
		if (other != null) {
			throw new BusinessException("Ya existe un tipo de propiedad "+tipoPropiedadName);
		} else {
			tipoPropDao.save(tipoProp);
		}
	}

	@Override
	public TipoPropiedad getTipoPropiedad(Long tipoPropId) {
		return tipoPropDao.get(tipoPropId);
	}

	@Override
	public void deleteTipoPropiedad(Long tipoPropId) {
		tipoPropDao.remove(tipoPropId);
	}

	@Override
	public Collection<TipoPropiedad> getAll() {
		return tipoPropDao.getAll();
	}
	
	@Override
	public void update(TipoPropiedad tipoProp) {
//		tipoPropDao.update(tipoProp);
	}

}
